<?php
/**
 * Created by PhpStorm.
 * User: xiangpeng
 * Date: 2016/12/26
 * Time: 15:00
 */

namespace Common\Model;


class CategoryModel extends  BaseModel
{
    //主键
    protected $pk = 'cid';
    //要操作那张表
    protected $tableName = 'category';
    //自动验证
    protected  $_validate = [
        ['cname','require','分类名称不能为空'],
        //['cname','','该分类名称已经存在啦!',0,'unique',1,3],
        ['sort','require','请填写排序!',1,3],


    ];

    /**
     * 处理所属分类
     * 不要自己以及自己的所有子集
     */
    public function getCateData($cid)
    {
        //1.寻找当前分类的所有子集
        //$cid找谁的自己，$this->get()所有的分类数据，在哪里去找子集
        $cids = $this->getSon($cid,$this->select());
        //dd($cids);die;
        //2.在把自己追加进去
        $cids[] = $cid;

        //dd($cids);
        //3.把自己和自己子集排除掉
        //$map = ['cid not in'=>$cids];
        //where("cid not in (3,2,5)")
        return $this->where("cid not in (".implode(',',$cids).")")->field('cid,cname')->select();
        //dd($datas);DIE;
    }

    /**
     * @param $cid
     * @param $data
     */
    //cid=1
    public function getSon($cid,$data)
    {
        static $temp = [];
        foreach($data as $k=>$v)
        {
            if($cid==$v['pid']){
                $temp[] = $v['cid'];
                $this->getSon($v['cid'],$data);
            }
        }
        return $temp;
    }

    /**
     * 删除分类
     */
    public function del($cid){
        //sp是我们自定义的打印函数，放在单入口文件
        // p($cid);die;
        //获取删除当前数据的pid
        $pid=$this->where("cid={$cid}")->getField('pid');
         //dd($pid);die;
        //将当前所删除数据的儿子pid修改成当前pid
        $this->where("pid={$cid}")->setField('pid',$pid);
        // 将当前删除数据
        $re=$this->where("cid={$cid}")->delete();
        // 结果为真假就反回
        if(!$re)  return false;
        return ture;
    }


}